package cn.bonoon.kernel.web.annotations.grid;


/**
 * <pre>
 * 定义grid列表的属性，包括：{@link AsDataGrid}和{@link AsTreeGrid}两种类型
 * 在不指定的情况下，默认是使用{@link AsDataGrid}类型
 * 建议即使不使用{@link AsDataGrid}或{@link AsTreeGrid}，也写上本注解提供一些默认值
 * 
 * 列表项的定义使用{@link AsColumn}
 * <hr/>
 * 如果对被注解的实体需要进行自动转值的，
 * 请参考{@link cn.bonoon.kernel.annotations.TransformField TransformField}和{@link cn.bonoon.kernel.annotations.Transform Transform}
 * </pre>
 * 
 * @author jackson
 * 
 */
public @interface GridOptions {

	String sortName() default "id";

	String sortOrder() default "desc";
	
	boolean checkbox() default false;
	/**
	 * 是否允许多行选；如果是树，则表示是否显示checkbox
	 * 
	 * @return 是否多选
	 */
	boolean singleSelect() default false;

	boolean rownumbers() default false;
	
	/**
	 * 是否自动适配列宽
	 */
	boolean fitColumns() default false;

	/**
	 * 是否显示操作栏，默认为true。
	 * 
	 * @return
	 */
	boolean operation() default true;

	String operationField() default "id";

	String operationTitle() default "操作";

	int operationWith() default 120;
	
	/**
	 * 对列表进行分组，这里是分组的定义
	 * @return
	 */
	ColumnGroup[] groups() default {};
	
	/**
	 * 定义在toolbar上的按键
	 * @return
	 */
	GridToolbar[] toolbars() default {};
	
	/**
	 * 定义在列上的操作按钮
	 * @return
	 */
	GridButton[] buttons() default {};
}
